The present disclosure relates generally to populating a database with information used to forward packets in a computer network.
A network device such as a router or switch receives, processes, and forwards or discards data packets based on information contained in the packet. Processing of control packets leads to the construction of a routing information base (RIB). The routing information base is a memory structure that contains routing data. Entries in the RIB are used to populate a forwarding information base (FIB), which is a database of information used to forward packets. When a data packet is received on a routed interface, the router looks up the destination in the FIB to find the next hop for the packet.
Any number of events may result in entries of a forwarding information base being cleared or becoming stale. For example, one or more components of the router may be rebooted, clearing stored routes or a secondary processor may come online to take over for a failed primary processor, in which case the existing entries may be considered stale. In order for the router to repopulate the FIB, the router first needs to process received routing protocol packets, build the RIB, select the best paths, and then use this information to repopulate the FIB. If a route is repopulated in the FIB before receiving a data packet associated with the route, forwarding for that packet or any packet with an associated prefix is essentially unaffected. Therefore, the order in which the FIB is repopulated can have a significant impact on the degree of service degradation caused by the failure or reboot at the network device.